//
// CVideoDevices.h
//

#ifndef __H_CVideoDevices__
#define __H_CVideoDevices__

#include "CDSDevice.h"
#include "CMsgStation.h"
#include "CMsgReceiver.h"

// Attention: this is a singleton

class CDeviceObserver;
class CVideoDevices : public CMsgStation, public CMsgReceiver
{
public:
	DEVICE_LIST         mList;

private:
	static CVideoDevices * sDevices;

protected:
	CDeviceObserver *	mWindow;

	CVideoDevices();
	~CVideoDevices();

public:
	static CVideoDevices * Instance(void);
	static void Release(void);

	void Populate(void);
	BOOL FindDevice(const char * inDeviceName, CDSDevice& outDevice);
	BOOL AddDevice(const char * inDeviceName);
	void RemoveDevice(const char * inDeviceName);

	virtual bool ReceiveMessage(MessageT inMessage, void * ioParam,
		void * ioParam2);
};

#endif // __H_CVideoDevices__